package com.health.ts.constant;

/**
 * 返回状态码枚举
 */
public enum ResultCodeEnum {
	
	/**
	 * 成功
	 */
	SUCCESS("0", "成功"),
	
	/**
	 * 业务提醒
	 */
	BUSINESS_FAILED("-1", "业务提醒"),
	
	/**
	 * 系统错误
	 */
	SYSTEM_ERROR("-2", "系统错误"),;

	/**
	 * 值
	 */
	private String value;

	/**
	 * 描述信息
	 */
	private String des;

	/**
	 * 构造函数
	 * 
	 * @param value 值
	 * @param des   描述
	 */
	ResultCodeEnum(String value, String des) {
		this.value = value;
		this.des = des;
	}

	/**
	 * 返回值
	 * 
	 * @return String
	 */
	public String value() {
		return value;
	}

	/**
	 * 返回描述
	 * 
	 * @return String
	 */
	public String getDes() {
		return des;
	}

	/**
	 * 根据字段类型编码转化枚举值
	 * 
	 * @param key 需要匹配的数值
	 * @return {数值匹配的枚举值}
	 */

	public static ResultCodeEnum valueByKey(String key) {
		ResultCodeEnum result = null;
		ResultCodeEnum[] enumValueArr = ResultCodeEnum.values();
		for (ResultCodeEnum enumValue : enumValueArr) {
			if (enumValue.value.equals(key)) {
				result = enumValue;
				break;
			}
		}
		if (result == null) {
			throw new RuntimeException("遇到不能解析的枚举值，值为：" + key);
		}
		return result;
	}

	/**
	 * 重载toString方法
	 * 
	 * @return {value 字段内容}
	 */
	@Override
	public String toString() {
		return value();
	}
}
